﻿#define _CRT_SECURE_NO_WARNINGS 1
//#include "List.h"
//void  LTtest()
//{
//	//初始化
//	LTNode* plist = LTInit();
//	//尾插
//	LTPushback(plist,1);
//	LTPushback(plist,2);
//	LTPushback(plist,3);
//	LTPushback(plist,4);
//	//LTPrint(plist);
//	//头插
//	//LTpushfront(plist, 5);
//	//LTpushfront(plist, 4);
//	//LTpushfront(plist, 3);
//	//LTpushfront(plist, 2);
//	//LTpushfront(plist, 1);
//	//LTPrint(plist);
//	//尾删
//	//LTpopback(plist);
//	//LTPrint(plist);
//	//头删
//	//LTpopfront(plist);
//	//LTPrint(plist);
//	// 查找
//	//LTNode* find = LTFint(plist, 3);
//	//在pos位置之后插⼊数据
//	//LTInsert(find,9);
//	//LTPrint(plist);
//	//销毁
//	LTDstroy(plist);
//	free(plist);
//	plist = NULL;
//}
//
//int main()
//{
//	LTtest();
//	return 0;
//}

#include <stdio.h>

//链表随机拷贝
//#include <stdlib.h>
// struct Node {
//    int val;
//    struct Node* next;
//    struct Node* random;
//
//};
//
//typedef struct Node List;
//List* LTbuyNode(int num)
//{
//    List* newnode = (List*)malloc(sizeof(List));
//    newnode->val = num;
//    newnode->next = newnode->random = NULL;
//    return newnode;
//}
//
//void AddNode(List* head)
//{
//    List* pcur = head;
//    while (pcur)
//    {
//        List* next = pcur->next;
//        List* newnode = LTbuyNode(pcur->val);
//        pcur->next = newnode;
//        newnode->next = next;
//        pcur = next;
//    }
//}
//
//void SetRandom(List* head)
//{
//    List* pcur = head;
//    while (pcur)
//    {
//        List* copy = pcur->next;
//        if (pcur->random)
//        {
//            copy->random = pcur->random->next;
//        }
//        pcur = pcur->next;
//    }
//}
//
//
//struct Node* copyRandomList(struct Node* head)
//{
//    if (head == NULL)
//    {
//        return head;
//    }
//    //复制
//    AddNode(head);
//    //置random
//    SetRandom(head);
//    //断开
//    List* newhead = head->next;
//    List* newtail = head->next;
//    while (newtail->next)
//    {
//        List* pcur = newtail->next;
//        newtail->next = pcur->next;
//        newtail = newtail->next;
//    }
//    return newhead;
//}
//
//int main()
//{
//    List* node1 = (List*)malloc(sizeof(List));
//    List* node2 = (List*)malloc(sizeof(List)); 
//    List* node3 = (List*)malloc(sizeof(List));
//    List* node4 = (List*)malloc(sizeof(List));
//    node1->val = 1;
//    node2->val = 2;
//    node3->val = 3;
//    node4->val = 4;
//    node1->next = node2;
//    node2->next = node3;
//    node3->next = node4;
//    node4->next = NULL;
//    node1->random = NULL;
//    node2->random = node3;
//    node3->random = node4;
//    node4->random = node1;
//    List* plist = node1;
//    List* newhead =  copyRandomList(plist);
//    while (newhead)
//    {
//        printf("%d->", newhead->val);
//        newhead = newhead->next;
//    }
//	return 0;
//}

//在屏幕上打印1~10的值
//int main()
//{
//	for (int i = 1; i <= 10; i++)
//	{
//		printf("%d ", i);
//	}
//	return 0;
//}



//输⼊⼀个正整数，计算这个整数是⼏位数？
//int main()
//{
//	int a = 0;
//	int count = 0;
//	scanf("%d", &a);
//	do
//	{
//		a /= 10;
//		count++;
//	} 
//	while (a);
//	printf("%d", count);
//	return 0;
//}